1090 PSET(5,132):LOCATE 17,3:PRINT"3.5 to 4.499":IF A$="K" THEN LOCATE 25,5:PRINT"Press ENTER to see the sky map.";:LOCATE 24,5:GOTO 5010 ELSE GOTO 30200
4000 ON ERROR GOTO 9000:SCREEN 0,1:CLS:COLOR IBW:LOCATE 3,8:PRINT"Press the ENTER key":LOCATE 5,8:PRINT"to see the sky map."
4010 LOCATE 7,8:COLOR IBR:PRINT"While the sky map is on":LOCATE 8,8:PRINT"the screen, you may"
4086 A$=INKEY$:IF A$=""THEN 4086 ELSE IF A$=CHR$(27) THEN SYSTEM ELSE IF A$="M" OR A$="m"THEN CLS:MESS=1:GOTO 4000 ELSE IF A$="a" OR A$="A" THEN CLS:LOCATE 15,14:PRINT"Please wait...":CLOSE#1:CHAIN"front",1:ELSE GOTO 4086
4990 LOCATE 1,1:PRINT STRING$(14,32);:IWH=0
5000 DRAW"b m 5,141 c3;f2 h1e1g2 bm 5,149 e1 f1 g1 h1 bm 5,157 e1 f1 g1 h1 r1 bm 6,165 r1 d1 l1":PSET (6,173),3:IF FI<>0 THEN DEF SEG:POKE &H4E,3:CIRCLE(6,195),2,3:PSET(6,195),IC2:LOCATE 25,3:PRINT USING"###% full";FI;:LOCATE 1,1
5010 KL=KL+1:IF KL>10 THEN 5011 ELSE IF K$(KL)=""THEN 5011 ELSE A$=K$(KL):K$(KL)="":GOTO 5012
5011 A$=INKEY$:IF A$=""THEN 5011
5012 IF A$=CHR$(27) THEN 4080
5013 IF A$="T" OR A$="t" THEN 5500
5015 IF A$="P" OR A$="p" THEN 5200 ELSE IF A$="L"OR A$="l"THEN 5050
5016 IF A$="S" OR A$="s" THEN 5100
5020 IF A$="C" OR A$="c" THEN 7000
5025 IF A$="I" OR A$="i"THEN 8000
5027 IF A$="K" OR A$="k" THEN A$="K":CLS:SCREEN 1,0:GOTO 1030
5028 IF A$="M" OR A$="m" THEN 4000
5029 IF A$=CHR$(13) THEN 6000
5030 GOTO 5010
5050 IF IDOP=1 THEN 31000 ELSE GET#1,1:IDOP=1:IPRIN=0:LOCATE 1,1:PRINT"Please wait...":CHAIN MERGE"planmerge",31000,ALL,DELETE 30150-40000
5100 IF IDONE=0 THEN ICR=1:GOSUB 6000 ELSE IF MESS=1 THEN CLS:GOSUB 30000
5110 IF IPL=1 THEN 4990 ELSE IF IDOP=1 THEN GOTO 30150 ELSE GET#1,1:IDOP=1:LOCATE 1,1:IPRIN=0:PRINT"Please wait...":CHAIN MERGE"planmerge",30150,ALL,DELETE 30150-40000
5200 IF IDONE=0 THEN ICR=1:GOSUB 6000
5201 SCREEN 0,1:CLS:WIDTH 40:LOCATE 10,12:COLOR IBR:PRINT"Please wait.":LOCATE 13,12:PRINT"Printing the sky map":LOCATE 15,12:PRINT"takes a while.":A$=INKEY$:IF A$=CHR$(27) THEN 4000
5203 IF IPRIN=0 THEN GET#1,1:IPRIN=1:IDOP=0:CHAIN MERGE"printer",30210,ALL,DELETE 30150-40000:ELSE GOTO 30210
5500 CLS:WIDTH 40:SCREEN 0,1
5550 LOCATE 1,12:COLOR IYL:PRINT"Technical Options":COLOR IBR:LOCATE 3,5:PRINT"The uncorrected stars' positions":PRINT"are given for the year 2000.0. For":PRINT"other years, ";:COLOR IYL:PRINT"correct the position for:
5610 LOCATE 24,15:COLOR IBR:PRINT"Press the ";:COLOR IYL:PRINT"ENTER";:COLOR IBR:PRINT" key";:LOCATE 25,15:PRINT"when you are finished.";:K=0:IBL=IYL+8:GOTO 5640
5670 IF LEN(A$)=2 THEN BA$=RIGHT$(A$,1) ELSE BA$="A"
5680 IF BA$=CHR$(77) THEN 5635
5690 IF BA$=CHR$(75) THEN PRINT OP$(K):K=(K+12) MOD 13:GOTO 5640
5700 IF BA$=CHR$(72) THEN PRINT OP$(K):IF K=0 THEN K=9:GOTO 5640 ELSE IF K<6 THEN K=(K+12)MOD 13:GOTO 5640 ELSE IF K<9 THEN K=4:GOTO 5640 ELSE K=K-4:GOTO 5640
5710 IF BA$=CHR$(80) THEN PRINT OP$(K):IF K>8 THEN K=0:GOTO 5640 ELSE IF K>4 THEN K=K+4:GOTO 5640 ELSE K=(K+1)MOD 13:GOTO 5640
5720 IF A$=CHR$(8) THEN PRINT OP$(K):K=(K+12)MOD 13:GOTO 5640
5730 IF(A$="Y" OR A$="y")AND K<4 THEN OP$(K)="Yes":GOTO 5635
5740 IF (A$="N" OR A$="n") AND K<4 THEN OP$(K)="No ":GOTO 5635
5750 IF K=4 AND(A$="4" OR A$="3" OR A$="2") THEN OP$(K)=A$+".5":GOTO 5635
5760 IF K>4 AND A$<CHR$(58) AND A$>CHR$(47) THEN OP$(K)=A$:GOTO 5635
5837 IF IESC=1 THEN IF IDD=1 THEN 5999 ELSE ERASE KX,KY,KM:CLOSE#3:IESC=0
5840 IDONE=IDD*IDONE:IF IDONE=0 THEN ERASE ACT:DIM ACT(58,32):IF IPL=1 THEN IPL=0:ERASE PL:GOTO 6000 ELSE GOTO 6000 ELSE GOSUB 30000:GOTO 5000
5999 GOSUB 30000:GOSUB 29999:IESC=0:GOTO 6004
6000 IF IDONE=1 THEN GOSUB 30000:GOTO 4990 ELSE IF IESC=1 THEN 5999 ELSE DIM KM(60),KX(60),KY(60):IWH=6:SCREEN 1,0:CLS:ULY=2:DPX=SCR*DPP:IMORE=INUT+IABER:COLOR 0,1:SB=0:NS=0:MN=0:LLC=3:LC=3:N=0:KL=-1:KC=0:GOSUB 29999
6001 OPEN "conames"FOR INPUT AS #3:FOR I=0 TO 10:K$(I)="":NEXT I:KI=0:ISTOP=0:IK=0:MN=0:GOTO 6004
6070 IF KM(KC)=4 THEN JY=INT(ULY*Y+22.5):IF Y<0.5 OR Y>196 THEN 6002 ELSE KY(KC)=INT(Y-0.5):KX(KC)=INT(X-0.5):PUT(KX(KC),KY(KC)),R4%,XOR:GOTO 6003
6075 IF KM(KC)=3 THEN JY=INT(ULY*Y+22):IF Y<1 OR Y>196 THEN 6002 ELSE KX(KC)=INT(X-1):KY(KC)=INT(Y-1):PUT(KX(KC),KY(KC)),R3%,XOR:GOTO 6003
6080 JY=INT(ULY*Y+21.5):IF Y<1.5 OR Y>196 THEN 6002 ELSE KX(KC)=INT(X-1.5):KY(KC)=INT(Y-1.5):IF KM(KC)=2 THEN PUT(KX(KC),KY(KC)),R2%,XOR:GOTO 6003
6090 IF KM(KC)=1 THEN PUT(KX(KC),KY(KC)),R1%,XOR:GOTO 6003
6100 IF KM(KC)<=0 THEN PUT(KX(KC),KY(KC)),R0%,XOR:GOTO 6003
6425 ERASE KM,KX,KY:CLOSE#3
6440 GET(48,49)-(59,149),P1%
6450 GET(60,21)-(79,177),P2%
6460 GET(80,0)-(239,199),P3%
6470 GET(240,21)-(259,177),P4%
6480 GET(260,49)-(271,149),P5%:IF IESC=1 THEN ICR=0:GOTO 4000
6490 MESS=0:IDONE=1:IF ICR=1 THEN ICR=0:RETURN ELSE GOTO 4990
7000 KXY=0:IF IDONE=0 THEN ICR=1:GOSUB 6000
7001 CLS:SCREEN 0:COLOR 7:LOCATE 1,1:PRINT"Here is a list of the visible":PRINT "constellations. Which constellation":PRINT"would you like to see? Please type the":PRINT"three letter abbreviation.":N=0:MMO=0:K=5:IS=1:N2=6
7005 IF KXY=1 THEN LOCATE 5,1:COLOR 15:PRINT CO$"is not listed. Please try again. ";:LOCATE 4,28:DEF SEG:POKE &H4E,7
7010 N=N+1:IF CONS$(N)=" "THEN 7010
7015 K=K+1:IF K>22 THEN IF IS=1 THEN IS=20:K=6:ELSE LOCATE 24,1:PRINT"Press the ENTER key for more.";:MMO=1:LOCATE 4,28:GOTO 7070
7020 LOCATE K,IS:L=LEN(WHCON$(N)):IF K=22 AND L>14 THEN A$=LEFT$(WHCON$(N),14):PRINT CONS$(N) A$;:GOTO 7035
7025 IF L>14 THEN PRINT CONS$(N):K=K+1:LOCATE K,IS+1:PRINT WHCON$(N); ELSE PRINT CONS$(N) WHCON$(N);
7035 IF N<MN THEN 7010 ELSE LOCATE 24,1:PRINT STRING$(39,32);:MMO=0:LOCATE 4,28:GOTO 7070
7040 FOR I=6 TO 23:LOCATE I,1:PRINT STRING$(39,32);:NEXT I:K=5:IS=1:GOTO 7015
7070 A$=INKEY$:IF A$=""THEN 7070 ELSE IF A$=CHR$(13) AND MMO=1 THEN 7040 ELSE A=ASC(A$):IF A<123 AND A>96 THEN A=A-32:A$=CHR$(A) ELSE IF A$=CHR$(27) THEN 7299 ELSE IF A<65 OR A>90 THEN 7070
7090 D$=INKEY$:IF D$=""THEN 7090 ELSE B=ASC(D$):IF B=8 THEN LOCATE 4,28:PRINT" ";:LOCATE 4,28:GOTO 7070 ELSE IF B<123 AND B>96 THEN B=B-32:D$=CHR$(B) ELSE IF D$=CHR$(27) THEN GOTO 7299 ELSE IF B<65 OR B>90 THEN 7090
7100 PRINT D$;
7110 C$=INKEY$:IF C$=""THEN 7110 ELSE IF C$=CHR$(27) THEN 7299 ELSE IC=ASC(C$):IF IC=8 THEN LOCATE 4,29:PRINT" ";:LOCATE 4,29:GOTO 7090 ELSE IF IC<123 AND IC>96 THEN IC=IC-32:C$=CHR$(IC) ELSE IF IC<65 OR IC>90 THEN 7110
7120 PRINT C$;:AT=0:CO$=A$+D$+C$+" "
7125 AT=AT+1:IF AT>MN THEN A=0:GOTO 7150 ELSE IF CONS$(AT)=CO$ THEN 7160 ELSE GOTO 7125
7150 KXY=1:GOTO 7001
7160 GOSUB 30000:SB=1:LC=2:N=AC(AT)-1
7170 N=N+1:GET#1,N:IB=CVS(B$):IF BINS(IB)=0 THEN 7170 ELSE IF CON$<>CO$ THEN 7245 ELSE GM=VAL(MAG$):IF GM>TOPM THEN 7170 ELSE RA=VAL(RA1$)+VAL(RA2$)/60+VAL(RA3$)/3600:DEC=VAL(D1$)+VAL(D2$)/60+VAL(D3$)/3600:IF SD$="-"THEN DEC=-DEC
7180 M=INT(GM+0.5):IF IPROP=1 THEN RA=RA+(VAL(PMR$)*YDI)/54000:DEC=DEC+(VAL(PMD$)*YDI)/3600
7210 ON IPREC GOSUB 19900,20000:IF Z=0 OR Y<2 OR Y>196 THEN 7170
7212 IF M=4 THEN KX=INT(X-0.5):KY=INT(Y-0.5):PUT(KX,KY),M4%,PSET:GOTO 7170
7214 IF M=3 THEN KX=INT(X-1):KY=INT(Y-1):PUT(KX,KY),M3%,PSET:GOTO 7170
7216 KX=INT(X-2):KY=INT(Y-2):IF M=2 THEN PUT(KX,KY),M2%,PSET:GOTO 7170
8000 IF IDONE=0 THEN ICR=1:GOSUB 6000 ELSE IF MESS=1 THEN CLS:GOSUB 30000
8010 A$=INKEY$:DEF SEG:POKE &H4E,3:X=IXP:Y=IYP:IF IAU+IAD=0 THEN PUT(X,Y),P%,XOR:GOTO 8020 ELSE IF IAU=1 THEN PUT(X+2,Y+5),U%,XOR :GOTO 8020 ELSE IF IAD=1 THEN PUT(X+2,Y),D%,XOR:GOTO 8020
8017 A$=INKEY$:IF A$="" THEN 8017 ELSE IF A$<>"8" AND A$<>"4" AND A$<>"2" AND A$<>"6" THEN GOSUB 30000:GOTO 8000 ELSE GOTO 8017
8020 A$=INKEY$:IF A$=""THEN 8020
8022 IF LEN(A$)=1 THEN 8040 ELSE AB$=RIGHT$(A$,1):XO=X:YO=Y
8030 IF AB$=CHR$(72)THEN Y=Y-1:GOTO 8085 ELSE IF AB$=CHR$(75)THEN X=X-1:GOTO 8080 ELSE IF AB$=CHR$(77)THEN X=X+1:GOTO 8080:ELSE IF AB$=CHR$(80)THEN Y=Y+1:GOTO 8085 ELSE GOTO 8020
8040 IF A$=CHR$(13) THEN 8200
8050 IF A$=CHR$(27)THEN 4080 ELSE IF A$="8" OR A$="4" OR A$="6" OR A$="2" THEN 8016
8070 GOTO 8020
8080 XX=X-XCC:X2=XX*XX:XPY=X2+Y2:IF XPY>RR2 THEN X=XO:X2=XX*XX:GOTO 8020 ELSE GOTO 8090
8085 YY=YCC-Y:Y2=YY*YY:XPY=X2+Y2:IF XPY>RR2 THEN Y=YO:Y2=YY*YY:GOTO 8020
8090 IF IAU+IAD=0 THEN PUT(XO,YO),P%,XOR:IF Y<190 AND Y>-1 THEN PUT(X,Y),P%,XOR:GOTO 8020 ELSE IF Y=190 THEN IAD=1:PUT(X+2,Y),D%,XOR:GOTO 8020 ELSE IF Y<0 THEN IAU=1:PUT(X+2,Y+5),U%,XOR:GOTO 8020
8095 IF IAU=1 THEN IF Y<-5 THEN X=XO:Y=YO:GOTO 8020 ELSE PUT(XO+2,YO+5),U%,XOR:IF Y<0 AND Y>-6 THEN PUT(X+2,Y+5),U%,XOR:GOTO 8020 ELSE IF Y=0 THEN PUT(X,Y),P%,XOR:IAU=0:GOTO 8020
8100 IF Y>193 THEN X=XO:Y=YO:GOTO 8020 ELSE PUT (XO+2,YO),D%,XOR:IF Y=189 THEN PUT(X,Y),P%,XOR:IAD=0:GOTO 8020 ELSE PUT (X+2,Y),D%,XOR:GOTO 8020
8210 FOR JJ=LJ1 TO LJ2:IF ACT(JJ,0)=0 THEN 8275 ELSE FOR NJ=1 TO ACT(JJ,0):K=ACT(JJ,NJ):IF K>=0 THEN GET#1,K ELSE RA=PL(-K-1,0):DEC=PL(-K-1,1):GOSUB 20000:GOTO 8237
8230 IF IPROP=1 THEN RA=RA+(VAL(PMR$)*YDI)/54000:DEC=DEC+(VAL(PMD$)*YDI)/3600
8235 ON IPREC GOSUB 19900,20000
8237 DIS=ABS(XO-X)+ABS(YO-Y):IF DIS<DISS THEN DISS=DIS:IND=K
8270 NEXT NJ
8275 NEXT JJ
8350 IF DISS<=3 THEN 8355 ELSE LINE (58,48)-(264,108),0,BF:POKE &H4E,3:LOCATE 8,9:PRINT"No object has been found.":LOCATE 9,9:PRINT"Check page 20 of your":LOCATE 10,9:PRINT"P.C. PLANETARIUM booklet":LOCATE 11,9:PRINT"for help.
8352 LOCATE 13,9:PRINT"Press I to try again.":LINE(58,48)-(264,108),IC2,B,&HAAAA:IR=1:MESS=1:GOTO 5000
8355 IF IND>=0 THEN GET#1,IND ELSE IN=-IND-1:RA=PL(IN,0):DEC=PL(IN,1):GOSUB 20000:GOTO 8371
8365 IF IPROP=1 THEN RA=RA+(VAL(PMR$)*YDI)/54000:DEC=DEC+(VAL(PMD$)*YDI)/3600
8370 ON IPREC GOSUB 19900,20000
8371 LOCATE 1,1:PRINT STRING$(14,32):IF IAU=1 THEN PUT(XO-3.5,YO-0.5),U%,XOR ELSE IF IAD=1 THEN PUT(XO-3.5,YO-5.5),D%,XOR:ELSE PUT(XO-5.5,YO-5.5),P%,XOR
8372 X=INT(X):Y=INT(Y):CIRCLE(X,Y),5,IC1:POKE &H4E,IC1:IS=1:IR=0:IF X<160 THEN IR=1:IS=31:IF CON$=" "THEN IS=29
8375 IF IND<0 THEN IF X<160 THEN IS=33:GOTO 8500 ELSE GOTO 8500 ELSE IF CON$=" "THEN LOCATE 1,IS:ID=2:PRINT"This star is":IF IR=1 THEN IS=28:GOTO 8413 ELSE GOTO 8413
8376 OPEN "conames"FOR INPUT AS #3:IS=1:IR=0:IF X<160 THEN IR=1:IS=31
8377 INPUT#3,NA$:INPUT#3,NB$:IF NA$+" "<>CON$ THEN 8377 ELSE CLOSE#3
8380 LOCATE 1,IS:PRINT"This star":N=15:IF LEFT$(POP$,1)=" "THEN ID=3:IF IR=1 THEN LOCATE 2,32:PRINT"is in the":IS=28:GOTO 8409 ELSE PRINT"is in the":GOTO 8409
8389 P$=POP$
8390 N=N-1:IF RIGHT$(P$,1)=" "THEN P$=LEFT$(P$,N):GOTO 8390:ELSE IF IR=1 THEN IS=36-N
8400 LOCATE 2,IS:ID=3:PRINT "is "P$",
8405 IF IR=1 THEN IS=35
8407 LOCATE ID,IS:ID=ID+1:PRINT"in the":IF IR=1 THEN IS=28
8409 LOCATE ID,IS:ID=ID+1:PRINT"constellation":IF IR=1 THEN IS=40-LEN(NB$)
8411 LOCATE ID,IS:ID=ID+1:PRINT NB$",":IF IR=1 THEN IS=28
8413 LOCATE ID,IS:ID=ID+1:PRINT"catalogued as":IF SS$=" " THEN SS$=" " ELSE IF LEFT$(SS$,1)<>" "THEN SS$=" "+SS$
8500 LOCATE 1,IS:ID=3:PRINT"This is":IF IR=1 THEN IS=39-LEN(PL$(IN))
8510 LOCATE 2,IS:PRINT PL$(IN)".":IF IN<>7 THEN RA=RA+0.00833:DEC=DEC+0.00833:GOSUB 20300:RA$=LEFT$(RA$,8):DC3$=""ELSE GOSUB 20300
8515 IF IR=1 THEN IF IN<>7 THEN IS=27 ELSE IS=24
8520 GOTO 8419
9000 A$=INKEY$:IF A$<>""THEN 9000
9001 IF IWH=6 THEN ICR=1:GOSUB 6440
9004 SCREEN 0,1:CLS:COLOR IBR:IF ERR=25 OR ERR=57 OR ERR=24 OR ERR=68 THEN LOCATE 5,5:PRINT"There is some error":LOCATE 7,5:PRINT"with your hardware.":LOCATE 9,5:PRINT"Please check your equipment.":GOTO 9500
9010 CLS:COLOR IBR
9020 IF ERR<>71 AND ERR<>53 THEN 9030 ELSE LOCATE 5,5:PRINT"There is some trouble with the":LOCATE 6,5:PRINT"diskette. Please be sure that":LOCATE 7,5:PRINT"the P.C. Planetarium diskette":LOCATE 8,5:PRINT"is in your diskette drive and
9025 LOCATE 9,5:PRINT"that the diskette drive door":LOCATE 10,5:PRINT"is closed.":GOTO 9500
9030 IF ERR=9 OR ERR=11 OR ERR=5 OR ERR=10 THEN RESUME NEXT
9035 LOCATE 5,5:PRINT"There is some error. The":LOCATE 7,5:PRINT"program will go back a step":LOCATE 9,5:PRINT"and you can try again.":GOTO 9500
9500 LOCATE 20,5:PRINT"Press";:COLOR IBW:PRINT" ENTER";:COLOR IBR:PRINT" when you are ready."
9505 FOR I=0 TO 10:K$(I)="":NEXT I:KI=0:KL=-1
9510 A$=INKEY$:IF A$="" THEN 9510 ELSE IF A$<>CHR$(13) THEN 9510 ELSE IF IWH=0 THEN GOSUB 30010:RESUME 4990 ELSE IF IWH=6 THEN GOSUB 30000:IDONE=0:RESUME ELSE IF IWH=3012 THEN ICR=1:GOSUB 30230:ICR=0:RESUME
15010 SLAM=SIN(XLAM):TN=SLAM*CEO-TAN(XB)*SEO:TD=COS(XLAM):RA=0:IF TD<0 THEN RA=PI# ELSE IF TD=0 THEN RA=SGN(TN)*PI#/2:GOTO 15030
15020 RA=RA+ATN(TN/TD)
15030 RA=RA/HF:SDEC=SIN(XB)*CEO+COS(XB)*SEO*SLAM:CDEC=SQR(1-SDEC*SDEC):DEC=0:IF CDEC<0 THEN DEC=PI# ELSE IF CDEC=0 THEN DEC=SGN(SDEC)*PI#/2:GOTO 15050
15040 DEC=DEC+ATN(SDEC/CDEC)
15050 DEC=DEC/RF:RETURN
16250 TD=SQR(1-TN*TN)
16300 T=0:IF TD<0 THEN T=PI# ELSE IF TD=0 THEN T=SGN(TN)*PID2#:RETURN
16310 T=T+ATN(TN/TD):RETURN
16400 IF ABS(P)>32760 THEN P=P-SGN(P)*32760:GOTO 16400
16405 P=P-360*(P\360-1)
16410 LP=INT(P):P=P-LP+LP MOD 360:RETURN
16990 E0=P:P2=E0:EAB=10
16995 EAD2=EAB:EAD=(P2+EP*SIN(E0)-E0)/(1-EP*COS(E0)):E0=E0+EAD:EAB=ABS(EAD):IF EAB<9.99998E-12 THEN RETURN ELSE IF EAB>=EAD2 THEN RETURN:ELSE GOTO 16995
19900 RI=RA*HF+CE:CD=COS(RF*DEC):CRI=COS(RI)*CD:SD=SIN(RF*DEC):TA=CD*SIN(RI):TB=CTE*CRI-STE*SD:SD=STE*CRI+CTE*SD:CD=SQR(1-SD*SD):IF SD>0.95 THEN CD=TA*TA+TB*TB:SD=SQR(1-CD):CD=SQR(CD)
19904 IF DEC=90 THEN DEC=89.999 ELSE IF DEC=-90 THEN DEC=-89.999
19906 RAZ=0:IF TB<0 THEN RAZ=PI# ELSE IF TB=0 THEN RAZ=SGN(TA)*PI#/2:GOTO 19920
19910 RAZ=ATN(TA/TB)+RAZ:IF RAZ<0 THEN RAZ=RAZ+2*PI#
19920 RAZ=RAZ+ZE:RI=RAZ-RAO:IF IMORE=0 THEN 20020 ELSE SR=SIN(RAZ):CR=COS(RAZ):TN=SD:TD=CD:GOSUB 16300:DEC=T/RF
19925 IF INUT=1 THEN TDEC=TAN(T):RI=RI+(CEO+SEO*SR*TDEC)*DPHER-CR*TDEC*DEPR:DEC=DEC+SEO*CR*DPHED+SR*DEPD
19930 IF IABER=1 THEN RI=RI-(CR*CSLEDR*CEO+SR*SSLEDR)/CD:DEC=DEC-(CSLEDD*CEO*(TEO*CD-SR*SD)+CR*SD*SSLEDD)
19950 DC=DEC*RF:GOTO 20010
20000 RI=RA*HF-RAO:DC=DEC*RF
20010 SD=SIN(DC):CD=COS(DC):IF ABS(SD)<EE THEN SD=0 ELSE IF ABS(CD)<EE THEN CD=0
30156 IC1=1:IC2=2:IGR=2:IBW=15:IYL=14:IBR=6:ILR=12:IRD=4:IF FO=1 THEN IGR=7:IYL=15:IYL=15:IBR=15:ILR=15:IRD=15:IC1=3:IC2=3:RESTORE 30158
30157 CLS:LOCATE 1,5:COLOR 0,1:DEF SEG:POKE &H4E,IC1:PRINT"Your Sky Map is being prepared.":FOR N=0 TO 6:READ DG%(N):NEXT N:DATA 12,5,16389,20500,20500,16389,0 :DATA 12,5,-16369,-4036,-4036,-16369,0:RESTORE 30159
30158 DATA 12,5,-16369,-4036,-4036,-16369,0
30159 FOR N=0 TO 7:READ PL$(N):NEXT N:DATA the moon,Mercury,Venus,the sun,Mars,Jupiter,Saturn,Halley's Comet
30160 DIM SU%(18),S1%(12),S4%(12),S2%(12),S5%(12),S6%(12),H%(12):FOR N=0 TO 12:READ S1%(N),S2%(N),S4%(N),S5%(N),S6%(N),H%(N):NEXT N:FOR N=0 TO 18:READ SU%(N):NEXT N
30175 DATA 16,16,16,16,16,16,10,10,10,10,10,6,0,0,-4096,0,252,16128,-16192,0,-4096,-16324,48,-16324,63,63,63,-16189,63,-29,-16192,-16192,-16192,-16381,-16336,195,-16184,-16184,-16184,-16376,-16328,60,-16192,-16192,-16192,-16336,51,0
30176 DATA 63,63,63,-3841,60,0,12,12,0,-16384,60,0,63,63,0,0,51,0,12,12,0,0,0,0,0,0,0,0,0,0
30180 DATA 22,11,12288,12288,12336,12300,960,51,-1024,-256,-769,-1024,768,51,12300,12480,12336,12288,0
30182 FOR N=0 TO 6:READ N0%(N),N1%(N),N2%(N),N3%(N),N4%(N):NEXT N:DATA 10,10,10,10,10,5,5,5,5,5,0,0,0,0,0,51,12,12,60,48,12,51,63,60,0,51,12,12,0,0,0,0,0,0,0
30184 FOR N=0 TO 6:READ R0%(N),R1%(N),R2%(N),R3%(N),R4%(N),M0%(N),M1%(N),M2%(N),M3%(N),M4%(N):NEXT N:GOTO 1030
30185 DATA 10,10,10,10,10,10,10,10,10,10,5,5,5,5,5,5,5,5,5,5,63,63,63,60,48,63,63,63,60,48,-16158,-16184,-16184,235,236,-16175,-16188,-16188,215,220,-16184,-16158,-16150,235,48,-16188,-16175,-16171,215,48,-16158,-16184,-16184
30190 DATA 60,0,-16175,-16188,-16188,60,0,63,63,63,0,0,63,63,63,0,0
30200 DIM LLS(14),BINS(217),ACT(58,32),AC(75),CONS$(75),WHCON$(75),P%(18),P1%(304),P2%(784),P3%(8004),P4%(784),P5%(304),U%(8),D%(8),ILX(15),GK$(24),OP$(12),OPP$(12),OB$(13),OBB$(13)
30205 FOR N=0 TO 12:READ OP$(N):READ OPP$(N):NEXT N:DATA "No ",0804,"No ",0904,"No ",1004,"No ",1104,"4.5", 1734,0,1911,1,1912,0,1914,1,1915,7,2011,2,2012,6,2014,0,2015
30206 FOR N=0 TO 13:OB$(N)=CHR$(176):READ OBB$(N):NEXT N:DATA 0812,0813,0818,0819,0824,0825,1412,1413,1414,1418,1419,1423,1424,2112
30210 FOR N=1 TO 24:READ GK$(N):NEXT N:DATA alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega
30220 FOR N=0 TO 14:READ ILX(N):NEXT N:DATA 128,64,32,16,8,4,2,1,16384,8192,4096,2048,1024,512,256:IF FO=1 THEN RESTORE 30252
30230 FOR N=0 TO 8:READ U%(N):NEXT N:DATA 14,7,2,-32758,8226,2178,2,2,2
30240 FOR N=0 TO 8:READ D%(N):NEXT N:DATA 14,6,2,2,2178,8226,-32758,2,0
30250 FOR N=0 TO 18:READ P%(N):NEXT N:DATA 22,11,8192,0,32,8192,0,32,8192,-22016,-22358,8192,0,32,8192,0,32,8192,0
30252 DATA 14,7,3,-16369,12339,3267,3,3,3,14,6,3,3,3267,12339,-16369,3,0
30255 DATA 22,11,12288,0,48,12288,0,48,12288,-256,-769,12288,0,48,12288,0,48,12288,0
30370 RESTORE 30370:FOR N=0 TO 14:READ LLS(N):NEXT N:DATA 90,82,58,47,38,24,12,0,-12,-24,-38,-47,-58,-82,-90
30380 DEC=FLAT:DECK=FLAT:DECO=RF*FLAT:RAO=FSD#*HF-FLON*RF:SDO=SIN(DECO):CDO=COS(DECO):YDI=FTAU*100:IF RAO<0 THEN RAO=RAO+PI2# ELSE IF RAO>PI2# THEN RAO=RAO-PI2#
30430 L=L-1:IF L=0 THEN RA=RAK:DEC=82.01:GOSUB 20000:IF Z=0 THEN 30450 ELSE BINS(0)=1:GOTO 30450
30440 DEC=LLS(L+1)+0.01:GOSUB 30490:GOTO 30430
30450 L=LK:IF LK=13 THEN L=12
30460 L=L+1:IF L=13 THEN RA=RAK:DEC=-82.01:GOSUB 20000:IF Z=0 THEN ERASE LLS:GOTO 30765 ELSE BINS(217)=1:ERASE LLS:GOTO 30765
30470 DEC=LLS(L)-0.1
30480 GOSUB 30490:GOTO 30460
30490 LERS=1:IF ABS(DEC)>38 THEN LERS=2
30500 RK=LERS*INT(RAK/LERS):RA1=RK:RA2=RK:RE=RK+12:IF RE>=24 THEN RE=RE-24
30510 RA=RK:GOSUB 20000:IF Z>0 THEN GOSUB 30640:BINS(IB)=1 ELSE RETURN
30520 RA=RA2+4*LERS:IF RA>23.99 THEN RA=RA-24
30530 GOSUB 20000:IF Z=0 THEN 30600
30540 RA22=RA:GOSUB 30640:BINS(IB)=1:IR3=0:FOR N=1 TO 3:RA=RA2+N*LERS:IF RA>=24 THEN RA=RA-24
30550 GOSUB 30640:BINS(IB)=1:RA=RA1-N*LERS:IF RA<0 THEN RA=RA+24
30560 IF RA=RE THEN IR3=1
30562 GOSUB 30640:BINS(IB)=1:NEXT N:IF IR3=1 THEN RETURN ELSE RA=RA-LERS:IF RA<0 THEN RA=RA+24
30565 IF RA=RE THEN RETURN ELSE GOSUB 30640:BINS(IB)=1:RA1=RA:RA2=RA22:GOTO 30520
30570 RA=RA1+LERS-0.01:IF RA>=24 THEN RA=RA-24
30580 GOSUB 20000:GOSUB 30640:IF Z=0 THEN BINS(IB)=0:RETURN ELSE BINS(IB)=1:RA=RA-LERS:IF RA<0 THEN RA=RA+24
30590 GOTO 30580
30600 RA=RA2+LERS:IF RA>=24 THEN RA=RA-24
30610 GOSUB 20000:IF Z=0 THEN 30570
30620 GOSUB 30640:BINS(IB)=1:RA2=RA:RA=RA1-LERS:IF RA<0 THEN RA=RA+24
30630 GOSUB 30640:BINS(IB)=1:RA1=RA:GOTO 30600
30640 RI=INT(RA):IF DEC<0 THEN 30710
30650 IF DEC<36 THEN B=INT(DEC/12):IB=85-24*B+RI:L=6-B:RETURN
30660 IF DEC<38 THEN IB=37+RI:L=4:RETURN
30670 IF DEC>=82 THEN IB=0:L=0:RETURN
30680 IF DEC<47 THEN IB=25+INT(RI/2):L=3:RETURN
30690 IF DEC<58 THEN IB=13+INT(RI/2):L=2:RETURN
30700 IF DEC<82 THEN IB=1+INT(RI/2):L=1:RETURN
30710 IF DEC>-36 THEN B=INT(DEC/12)+1:IB=109-24*B+RI:L=7-B:RETURN
30720 IF DEC>-38 THEN IB=157+RI:L=9:RETURN
30730 IF DEC>-47 THEN IB=181+INT(RI/2):L=10:RETURN
30740 IF DEC>-58 THEN IB=193+INT(RI/2):L=11:RETURN
30750 IF DEC>-82 THEN IB=205+INT(RI/2):L=12:RETURN
30760 IB=217:L=13:RETURN
30765 IWH=307:OPEN"stars"AS #1 LEN=72
30766 FIELD#1,4 AS B$,5 AS MAG$,4 AS HR$,3 AS FL$,2 AS GR$,2 AS SS$,4 AS CON$,2 AS RA1$,2 AS RA2$,4 AS RA3$,1 AS SD$,2 AS D1$,2 AS D2$,2 AS D3$,6 AS PMR$, 6 AS PMD$,6 AS PAR$,15 AS POP$